package com.AdvancedDemos.集合.单列集合;

import java.util.Arrays;

public class Learn可变参数 {
    public static void main(String[] args) {
        /**
         * 可变参数就是一种特殊参数,定义在方法,构造器的形参列表里,
         * 格式: 形参数据类型...(空格/不空格)参数名称
         *
         * 可变参数的特点和好处
         * 特点:可以不传数据给它,也可以传一个或者同时传多个数据给它,甚至可以传一个数组给它
         * 好处:常常用来灵活的接收数据
         */

        test();

        test(10);

        test(10, 20, 30);

        test(new int[]{10, 20, 30, 40});

        /**
         * 可变参数注意事项:
         * 1.一个形参列表中,只能由一个可变参数
         * 2.可变参数必须放在形参列表的最后面(否则,后面的其他形参接不到实参)
         */
    }

    public static void test1(int a, String... b) {

    }

    public static void test(int... nums) {
        //可变参数在函数内部就是一个数组
        System.out.println(nums.length);
        System.out.println(Arrays.toString(nums));
        System.out.println("------------------");
        /*
        0
        []
        ------------------
        1
        [10]
        ------------------
        3
        [10, 20, 30]
        ------------------
        4
        [10, 20, 30, 40]
        ------------------
*/
    }
}
